package treeSetExample;
import java.util.Set;
import java.util.TreeSet;
import java.util.Comparator;
import java.lang.Comparable;

class CustomComparator<T extends Comparable<T>> implements Comparator<T>
{   // extends Comparable<T>：这部分是一个类型边界（Type Bound），
    // 它限制了T必须是Comparable<T>的一个实例或者其子类的实例
    // 通过指定这个边界，你确保了在使用T类型的对象时，可以安全地调用它们的compareTo方法。
    public int compare(T com1,T com2) // 覆盖接口父类的方法,实现按字典排序的相反顺序
    {
        if(com1.equals(com2))
            return 0;
        else
            return com1.compareTo(com2)*-1;
    }
}
public class TreeSetTest {
    public static void main(String[] args)
    {
        Comparator<String> cmp = new CustomComparator<String>();
        Set<String> tr = new TreeSet<String>(cmp);
        tr.add("one");
        tr.add("two");
        tr.add("three");
        for(var s:tr)
            System.out.println(s);
    }
}
